const { resolve } = require('path');
const HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
  entry: './src/js/index.js',
  output: {
    filename: 'js/index.js',
    path: resolve(__dirname, 'build'),
  },
  module: {
    rules: [
      /**
       * js兼容性处理：babel-loader @babel/core @babel/preset-env
       * 1. 基本js兼容性处理 --> @babel/preset-env
       *    问题：只能转换基本语法，如promise不能转换
       * 2. 全部兼容性处理 --> @babel/polyfill
       *    问题：我只要解决部分兼容性问题，但是将所有兼容性代码全部引入，体积太大了
       * 3. 需要做兼容性处理的就做：按需加载 --> core-js
       *
       */
      {
        test: /\.js$/,
        exclude: /node_modules/,
        loader: 'babel-loader',
        // presets: [
        //   [
        //     '@babel/preset-env',
        //     {
        //       targets: {
        //         ie: 9,
        //         edge: 17,
        //         firefox: 60,
        //         chrome: 60,
        //         safari: 10,
        //       },
        //       useBuiltIns: 'usage',
        //       corejs: 3,
        //     },
        //   ],
        // ],
      },
    ],
  },
  plugins: [
    new HtmlWebpackPlugin({
      template: './src/index.html',
    }),
  ],
  mode: 'development',
};
